package org.fastiot.protocol

import org.fastiot.protocol.codec.BasicRule
import org.fastiot.protocol.group.Groupable

final class Metadata {

    /**
     * 缓存的（编解码）基础规则
     * Key: Code of rule; Value: Instance of BasicRule
     */
    static final Map<String, BasicRule> CachedBasicRules = [:]

    /**
     * 缓存的编解码分组（映射关系）
     * 缓存结构：根<编解码分组类型, 该类型分组缓存<内置分组类型, 按隶属关系缓存的编解码分组缓存<隶属关系代码,绑定该隶属关系的编解码分组集合>>>
     */
    static final Map<Groupable.Type, Map<Groupable.Type, Map<Integer, Collection<Groupable>>>> CachedGroups = [:]

}
